//
//  QGTitleButton.swift
//  斯威夫特微博
//
//  Created by youyoumacmini3 on 2017/7/14.
//  Copyright © 2017年 youyoumacmini3. All rights reserved.
//

import UIKit

class QGTitleButton: UIButton {

    
    
    // 重载构造函数
    // 如果 title 是 nil 。就显示首页
    // 不为 nil 显示 title 和 图像
    init(title: String?) {
        super.init(frame: CGRect())
        
        // 1. 判断 title
        if title == nil {
            setTitle("首页", for: [])
        }else{
            setTitle(title! + "  ", for: [])
            // 设置图像
            setImage(#imageLiteral(resourceName: "navigationbar_arrow_down"), for: [])
            setImage(#imageLiteral(resourceName: "navigationbar_arrow_up"), for: .selected)
        }
        
        // 2. 设置字体和颜色
        titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
        setTitleColor(#colorLiteral(red: 0.501960814, green: 0.501960814, blue: 0.501960814, alpha: 1), for: [])
       
        // 3. 设置大小
        sizeToFit()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    
    // 重新布局子视图
    override func layoutSubviews() {
        super.layoutSubviews()
        
        // 判断label 和 imageView是否同时存在
        guard let titleLabel = titleLabel,
              let imageView = imageView
            else { return  }
         print("按钮位置\(titleLabel)\(imageView)")
        
        
        // OC 中不允许直接修改结构体内部的值
        // Swift 中可以直接修改
        titleLabel.frame.origin.x = 0
        imageView.frame.origin.x = titleLabel.bounds.width
        
        
        
        
  // FIXME:(首次加载位置bug) 通过 frame将按钮上的title/imageView （已解决，如上）
// （原来的方法有问题）       // 将 label 的 x 向左移动 imageView的宽度
//        titleLabel.frame = titleLabel.frame.offsetBy(dx: -imageView.bounds.width, dy: 0)
//        // 将 imageView 的 x 向右移动 label 的宽度
//        imageView.frame = imageView.frame.offsetBy(dx: titleLabel.bounds.width, dy: 0)
        

        
    }

}
